﻿// Copyright (c) ZhangPeihang. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.

using LaserMark.DataAccess.Models;

namespace LaserMark.View.Services;

public class MarkOption
{
    [NotNull]
    public MachineSetting? AxisCode { get; set; }

    [NotNull]
    public MachineSetting? LightOffset { get; set; }

    [NotNull]
    public MachineSetting? ZeroOffSet { get; set; }

    [NotNull]
    public MachineSetting? ZeroAcc { get; set; }

    [NotNull]
    public MachineSetting? ZeroDec { get; set; }

    [NotNull]
    public MachineSetting? ZeroVel { get; set; }

    [NotNull]
    public MachineSetting? ManualAcc { get; set; }

    [NotNull]
    public MachineSetting? ManualDec { get; set; }

    [NotNull]
    public MachineSetting? ManualVel { get; set; }

    [NotNull]
    public MachineSetting? ScanAcc { get; set; }

    [NotNull]
    public MachineSetting? ScanDec { get; set; }

    [NotNull]
    public MachineSetting? ScanVel { get; set; }

    [NotNull]
    public MachineSetting? MarkAcc { get; set; }

    [NotNull]
    public MachineSetting? MarkDec { get; set; }

    [NotNull]
    public MachineSetting? MarkVel { get; set; }

    [NotNull]
    public DeviceArgs? XPluse { get; set; } = new();

    [NotNull]
    public DeviceArgs? YPluse { get; set; } = new();

    [NotNull]
    public DeviceArgs? ZPluse { get; set; } = new();

    [NotNull]
    public MarkArgs? MarkArgs { get; set; }

    [NotNull]
    public PhotoelectricitySetting? PhotoelectricitySetting { get; set; }

    [NotNull]
    public List<GCodeOrder>? GCodeOrder { get; set; }

    [NotNull]
    public List<MarkTemplate>? MarkTemplate { get; set; }

    [NotNull]
    public MachineSetting? SoftMaxLimit { get; set; }

    [NotNull]
    public MachineSetting? SoftMinLimit { get; set; }

    [NotNull]
    public ConnectLine? AutoFolder { get; set; }

    [NotNull]
    public ComprehensiveSetting? ComprehensiveSetting { get; set; }

}
